Matthias Clasen [Wed, 3 May 2017 21:08:29 +0000 (17:08 -0400)]
clipboard: Try the mimetype first
Try text/plain;charset=utf-8 first, before falling back to
X11-isms like UTF8_TEXT. This makes things work on Wayland
compositors that don't carry a heavy X11 legacy around.
https://bugzilla.gnome.org/show_bug.cgi?id=781814
Tim-Philipp Müller [Wed, 3 May 2017 17:40:56 +0000 (18:40 +0100)]
meson: simplify cups version check in printbackends
Using cc.compute_int() instead of cc.get_define() for now
as there seems to be some issue with get_define() (#1726).
Lapo Calamandrei [Wed, 3 May 2017 15:43:45 +0000 (17:43 +0200)]
Adwaita: regenerate css using sassc
Lapo Calamandrei [Wed, 3 May 2017 15:39:21 +0000 (17:39 +0200)]
Adwaita: add more space between check/radio and label in popovers
See https://bugzilla.gnome.org/show_bug.cgi?id=779570 for details.
Lapo Calamandrei [Wed, 3 May 2017 15:31:50 +0000 (17:31 +0200)]
Adwaita: add a sassc based parse-sass.sh script
Emmanuele Bassi [Wed, 3 May 2017 15:22:52 +0000 (16:22 +0100)]
meson: Remove G_LOG_USE_STRUCTURED from target C flags
The G_LOG_USE_STRUCTURED symbol is defined in the project flags, so we
don't need to add it again in the per-target flags.
Ernestas Kulik [Wed, 3 May 2017 14:36:45 +0000 (17:36 +0300)]
meson: depend on glib >= 2.53.1
The code uses g_object_new_with_properties(), which is only available in
versions 2.53.1 and up.
https://bugzilla.gnome.org/show_bug.cgi?id=782123
Emmanuele Bassi [Wed, 3 May 2017 15:11:17 +0000 (16:11 +0100)]
build: Use appropriate linker flag for the builder test
The `-export-dynamic` flag is a libtool-specific flag; since we're not
using libtool with Meson, we should instruct the C compiler to use the
appropriate linker flag instead.
Emmanuele Bassi [Wed, 3 May 2017 14:58:49 +0000 (15:58 +0100)]
window: Remove property definition
Commit
92b0d2e8ea8b41ea914eb4d66b48cc7dd2d34b9d removed the
hide-titlebar-when-maximized property handlers, but it still installed
the GParamSpec into the GtkWindow class.
Emmanuele Bassi [Wed, 3 May 2017 14:46:35 +0000 (15:46 +0100)]
Specify more options to sassc
We should use the compact style, to minimize the whitespace; and we
should omit the source map URL comment as well.
Emmanuele Bassi [Wed, 3 May 2017 14:45:15 +0000 (15:45 +0100)]
build: De-duplicate options to sassc
If we want to change the list of options we use with sassc, not having
to copy-paste them in multiple rules would be a good start.
Emmanuele Bassi [Wed, 3 May 2017 14:21:20 +0000 (15:21 +0100)]
testsuite: Remove unused function
Silence a compiler warning.
Emmanuele Bassi [Sun, 30 Apr 2017 21:14:37 +0000 (22:14 +0100)]
build: Port the a11y test suite to Meson
Copy the location of the test data and binaries from the autotools
build, even though it's not really correct; currently we install the
test data under libexecdir, but it should live under datadir, and we
should use `G_TEST_DIST` to figure it out.
The `state` subdirectory is missing.
Emmanuele Bassi [Sun, 30 Apr 2017 21:13:47 +0000 (22:13 +0100)]
build: Add common settings for tests
We are going to reuse them in the various parts of the test suite.
Emmanuele Bassi [Sun, 30 Apr 2017 11:39:59 +0000 (12:39 +0100)]
build: Update autotools for API reference changes
Emmanuele Bassi [Fri, 28 Apr 2017 22:48:43 +0000 (23:48 +0100)]
build: Add Meson-related files to the autotools dist
This way, a tarball generated via autotools will also allow building
GTK+ via Meson.
Emmanuele Bassi [Fri, 28 Apr 2017 21:41:50 +0000 (22:41 +0100)]
build: Use link_whole for GDK backends
When linking libgdk4 to each backend's static library, we want to use
the whole-archive support.
Emmanuele Bassi [Fri, 28 Apr 2017 21:40:58 +0000 (22:40 +0100)]
build: Define G_LOG_USE_STRUCTURED in GDK
We want to use the new structured logging support in GLib.
Emmanuele Bassi [Fri, 28 Apr 2017 21:26:32 +0000 (22:26 +0100)]
build: Add common flags to GDK backends
The common compiler and linker flags control, among other things, the
default visibility of symbols; without them, we leak symbols that ought
to be private.
Emmanuele Bassi [Fri, 28 Apr 2017 14:23:45 +0000 (15:23 +0100)]
build: Fix the introspection build
GSK has various enumeration types that are currently not used; while
they may go away, currently they are built and introspected. If we want
the introspection machinery to work, and still use static libraries to
build GDK and GSK into the GTK shared library, then we need to reference
the get_type() function of these enumeration types somewhere, to avoid
the linker discarding it, and thus breaking the build.
As luck would have it, we have an autogenerated bit of C that refers to
all the get_type() functions in the library; if we add the GSK types to
it, then we get the reference we're looking for, and the build succeeds.
Emmanuele Bassi [Fri, 28 Apr 2017 14:49:00 +0000 (15:49 +0100)]
build: Depend on Meson 0.40 at least
Emmanuele Bassi [Wed, 26 Apr 2017 16:47:06 +0000 (17:47 +0100)]
build: Initial attempt at fixing the docs build
We need to reference the types file directly, because it won't be copied
into the builddir by Meson — except for GTK, which needs to generate its
own types file using configure_file().
Emmanuele Bassi [Wed, 26 Apr 2017 16:10:15 +0000 (17:10 +0100)]
build: Use get_pkgconfig_variable()
There's no need to run pkg-config ourselves.
Emmanuele Bassi [Wed, 26 Apr 2017 16:04:20 +0000 (17:04 +0100)]
build: Improve consistency of the "coding" style
We're mixing a lot of styles in the Meson build files. This is an
attempt at making everything slightly more consistent in terms of
whitespace and indentation.
Emmanuele Bassi [Wed, 26 Apr 2017 16:02:26 +0000 (17:02 +0100)]
build: Clean up print backends Meson rules
Emmanuele Bassi [Wed, 26 Apr 2017 15:51:46 +0000 (16:51 +0100)]
build: Put the xkbcommon required version into a variable
We use it in two places.
Emmanuele Bassi [Wed, 26 Apr 2017 15:02:17 +0000 (16:02 +0100)]
build: Ensure that Vulkan shaders are rebuilt if glslc is found
If glslc is found, rebuild the shaders from GLSL to SPIR-V; otherwise,
we're just going to use the built files we have committed in the source
repository.
Emmanuele Bassi [Wed, 26 Apr 2017 14:59:43 +0000 (15:59 +0100)]
build: Add post-install script
When building GTK+ straight from the repository without any assistance
from packaging tools, we need to trigger system-wide updates, like the
icon theme cache update, or the schema compilation.
Emmanuele Bassi [Wed, 26 Apr 2017 14:16:21 +0000 (15:16 +0100)]
build: Clean up Wayland protocol code generation
We can build the name of the input and output files for the Wayland
protocols we use from the protocol name, stability, and version. This is
similar to how the autotools build does it, except much more clear and
without shelling out twice to sed just to resolve the Makefile rule.
Emmanuele Bassi [Wed, 26 Apr 2017 14:15:45 +0000 (15:15 +0100)]
build: Add Meson options for quartz/win32 backends
Emmanuele Bassi [Wed, 26 Apr 2017 13:44:06 +0000 (14:44 +0100)]
build: Disable introspection generation
Currently gobject-introspection is badly borked with Meson.
This will need to be reverted.
Emmanuele Bassi [Wed, 19 Apr 2017 13:08:13 +0000 (14:08 +0100)]
build: Rename GSK resource generator script
Maintain the naming convention, since we have similar scripts for GDK
and GTK already.
Emmanuele Bassi [Wed, 19 Apr 2017 10:35:45 +0000 (11:35 +0100)]
build: Generate the API references (WIP)
Still a work in progress.
Emmanuele Bassi [Wed, 19 Apr 2017 10:34:59 +0000 (11:34 +0100)]
build: Add the appropriate inclusion paths for libgtk
Emmanuele Bassi [Wed, 19 Apr 2017 10:34:29 +0000 (11:34 +0100)]
build: Disable deprecation warnings for input methods
Emmanuele Bassi [Wed, 19 Apr 2017 10:31:08 +0000 (11:31 +0100)]
docs: Rename files to match type and version
The main GDK API reference index is XML, not SGML.
The overrides file is for GDK 4.x, not 3.x.
Emmanuele Bassi [Tue, 18 Apr 2017 17:04:31 +0000 (18:04 +0100)]
build: Add introspection generation
Currently, no platform-specific introspection is generated; there will
be a follow-up commit.
Emmanuele Bassi [Tue, 18 Apr 2017 14:16:28 +0000 (15:16 +0100)]
build: Use the common linker flags in GDK and GSK
Instead of hard-coding `-Bsymbolic`.
Emmanuele Bassi [Tue, 18 Apr 2017 13:51:25 +0000 (14:51 +0100)]
build: Use the appropriate linker flags
We need to check if the linker flags we use are available, depending on
the platform, and we need to ensure that the shared library is
versioned appropriately.
Emmanuele Bassi [Tue, 18 Apr 2017 13:29:48 +0000 (14:29 +0100)]
build: Bump version and C standard
GTK+ 4.0 uses C99.
Emmanuele Bassi [Tue, 18 Apr 2017 13:28:46 +0000 (14:28 +0100)]
build: Add missing symbol visibility flags
GTK symbols are not visible by default, and only the ones annotated with
_GDK_EXTERN (and wrapper macros) are exported. We need to define
_GDK_EXTERN during the configuration, depending on the platform and
compiler we use.
Emmanuele Bassi [Tue, 18 Apr 2017 13:28:11 +0000 (14:28 +0100)]
build: Add compiler warnings and errors
We don't want to build buggy code.
Emmanuele Bassi [Tue, 18 Apr 2017 13:26:12 +0000 (14:26 +0100)]
build: Depend on graphene-gobject-1.0
We use the GObject types with Graphene, so we need to check that the
library has been built with them.
Emmanuele Bassi [Tue, 18 Apr 2017 13:25:44 +0000 (14:25 +0100)]
build: Some whitespace cleanups
Emmanuele Bassi [Tue, 18 Apr 2017 13:24:06 +0000 (14:24 +0100)]
build: Generate the appropriate GLib versioning checks
The autotools build checks the version of GLib we are depending on in
order to generate the appropriate GLIB_VERSION values for the
min-required/max-allowed defines.
Emmanuele Bassi [Tue, 18 Apr 2017 13:22:23 +0000 (14:22 +0100)]
build: Add the appropriate paths in the configuration header
Instead of injecting them into the C compiler arguments.
Emmanuele Bassi [Tue, 18 Apr 2017 13:21:05 +0000 (14:21 +0100)]
build: Use the appropriate quoting
There's no need for string concatenation.
Emmanuele Bassi [Tue, 18 Apr 2017 13:13:51 +0000 (14:13 +0100)]
build: Do not mix private and public GDK headers
The type generation script inside gtk/ will use the `gdk_headers`
variable, and that must not contain private headers.
Tim-Philipp Müller [Thu, 30 Mar 2017 23:15:08 +0000 (00:15 +0100)]
meson: gdk: fix static library names
Fix double lib prefix in filenames (liblibgdk-xyz.a)
Tim-Philipp Müller [Thu, 23 Mar 2017 15:54:58 +0000 (15:54 +0000)]
meson: build input modules
We have to work around some ordering problems here. We still
manage to keep most of the guts in modules/input/meson.build,
so it's not too ugly overall.
(The autotools build solves this with a 'make -C ../../input/modules'
inside gtk/Makefile, but that's not something we can or want to do.)
Tim-Philipp Müller [Fri, 24 Mar 2017 11:34:49 +0000 (11:34 +0000)]
meson: check for xinerama
Tim-Philipp Müller [Fri, 24 Mar 2017 11:03:56 +0000 (11:03 +0000)]
meson: fix XIAllowTouchEvents check
Need to link against dep/lib to check for function in it. Also
misc fixes to surrounding xi-related checks.
Tim-Philipp Müller [Thu, 23 Mar 2017 20:55:59 +0000 (20:55 +0000)]
meson: remove duplicate libm variable
Only need one of libm and mlib
Tim-Philipp Müller [Thu, 23 Mar 2017 20:50:03 +0000 (20:50 +0000)]
meson: check for more missing config.h defines
Lots of them are unused and can be removed. For others we
add a check.
Tim-Philipp Müller [Thu, 23 Mar 2017 19:36:59 +0000 (19:36 +0000)]
meson: simplify function checks
Because we can. We don't need to specify the right header anymore
to check for functions.
Tim-Philipp Müller [Thu, 23 Mar 2017 19:15:44 +0000 (19:15 +0000)]
meson: simplify header checks
Remove workaround for gcc bug (Meson does that now), and
construct the right config.h defines for the headers on
the fly instead of listing them in the build file, which
is more error prone.
Matthias Clasen [Thu, 23 Mar 2017 15:09:51 +0000 (15:09 +0000)]
Set glib min/max versions
Tim-Philipp Müller [Wed, 22 Mar 2017 18:32:36 +0000 (18:32 +0000)]
meson: fix GETTEXT_PACKAGE
Matthias Clasen [Thu, 23 Mar 2017 12:29:08 +0000 (12:29 +0000)]
Don't require glslc for vulkan
The compiled shaders are checked into git.
Tim-Philipp Müller [Wed, 22 Mar 2017 18:25:09 +0000 (18:25 +0000)]
meson: move colord checks into cups printbackend
Which is the only user of it. Also add option to enable/disable.
Tim-Philipp Müller [Wed, 22 Mar 2017 18:15:17 +0000 (18:15 +0000)]
meson: gtk: set GTK_PRINT_BACKENDS define properly
Tim-Philipp Müller [Wed, 22 Mar 2017 16:48:56 +0000 (16:48 +0000)]
meson: modules: add printbackends
The cups checks might not work properly everywhere yet,
since they don't use cups-config and parse the output yet.
Tim-Philipp Müller [Wed, 22 Mar 2017 16:51:39 +0000 (16:51 +0000)]
meson: gtk: don't overwrite top-level cdata variable with local stuff
We need to set the global configuration data written into
config.h from the modules/printbackends meson file.
Tim-Philipp Müller [Wed, 22 Mar 2017 13:53:25 +0000 (13:53 +0000)]
meson: add po and po-properties
Tim-Philipp Müller [Wed, 22 Mar 2017 13:39:14 +0000 (13:39 +0000)]
meson: testsuites: tools: add meson build
Tim-Philipp Müller [Wed, 22 Mar 2017 13:17:02 +0000 (13:17 +0000)]
meson: testsuite: reftests: add build defs, but needs more work
Not sure how these are supposed to work yet, we can specify
arguments for running the tests uninstalled as well with test(),
if that helps in any way.
Tim-Philipp Müller [Wed, 22 Mar 2017 11:39:27 +0000 (11:39 +0000)]
meson: testsuite: gdk: use array for test definitions
Tim-Philipp Müller [Wed, 22 Mar 2017 11:23:52 +0000 (11:23 +0000)]
meson: testsuite: gtk: sync with Makefile and add some missing bits
Also use an array. A few tests fail, needs investigation.
Tim-Philipp Müller [Wed, 22 Mar 2017 00:45:39 +0000 (00:45 +0000)]
meson: make sure gsk/gdk generated headers exist for libgtk_dep users
Add back dependencies on libgdk_dep and libsk_dep which are declared
dependencies. We removed this before because these declarations had
link_with: lines that dragged in the static libgdk.a and libgsk.a libs
which are linked into libgtk-4.so anyway and thus shouldn't be used
when linking internal exes/tools against libgtk-4. Remove the static
libs from the declared dependencies and have libgtk link those in
explicitly, so that the declared deps now just provide all the built
dependencies and include dirs and such for declared libgtk_dep users
such as the internal exes/tools, which want all the generated gsk/gdk/gtk
headers to exist before attempting to compile anything against the
gtk+ headers.
Tim-Philipp Müller [Wed, 22 Mar 2017 00:15:31 +0000 (00:15 +0000)]
meson: generate .pc files
Tim-Philipp Müller [Tue, 21 Mar 2017 13:34:25 +0000 (13:34 +0000)]
meson: gtk: update build file and sync to Makefile
Tim-Philipp Müller [Mon, 20 Mar 2017 19:24:11 +0000 (19:24 +0000)]
meson: gtk: use gnome.mkenums() and gnome.genmarshal()
Tim-Philipp Müller [Mon, 20 Mar 2017 19:16:04 +0000 (19:16 +0000)]
meson: gdk, gsk: fix install path of generated files
Tim-Philipp Müller [Mon, 20 Mar 2017 16:26:13 +0000 (16:26 +0000)]
meson: gtk: remove internal static libs from declared gtk dependency
gdk and gsk are no longer separate libs but part of gtk now, so any
Gtk+ user should just link to gtk, there's no need to additionally
link against all those static helper libs that go into the gtk lib.
This means we need to specifically add confinc to include_directories
in more places to make sure the right config.h (i.e. ours) gets
included and not a subproject's like graphene's config.h.
Not dragging in static libs also fixes the issue of all executables
having to be relinked for any and all changes. With this change
it's super-fast now and can be skipped for most changes that don't
touch the external ABI.
Tim-Philipp Müller [Mon, 20 Mar 2017 16:25:14 +0000 (16:25 +0000)]
meson: gtk: use array for installed tools definition
Tim-Philipp Müller [Mon, 20 Mar 2017 16:24:12 +0000 (16:24 +0000)]
meson: gtk: install headers
Tim-Philipp Müller [Mon, 20 Mar 2017 12:18:15 +0000 (12:18 +0000)]
meson: gdk: add quartz backend skeleton
Won't even build yet, just put basic bits in place.
Tim-Philipp Müller [Mon, 20 Mar 2017 12:03:45 +0000 (12:03 +0000)]
meson: gdk: win32: add skeleton bits for win32 backend
Won't even build, configure bits still missing.
Tim-Philipp Müller [Mon, 20 Mar 2017 11:44:42 +0000 (11:44 +0000)]
meson: gdk: wayland: generate private wayland headers first
gdkprivate-wayland.h includes generated wayland client protocol
headers and is included from gdkdisplaymanager.c, so we need to
generate those client protocol headers first also when building
main gdk itself.
Tim-Philipp Müller [Mon, 20 Mar 2017 11:44:04 +0000 (11:44 +0000)]
meson: gdk: add Mir backend bits
Completely untested, might not even build.
Tim-Philipp Müller [Mon, 20 Mar 2017 00:37:09 +0000 (00:37 +0000)]
meson: gdk: build individual backends as static libs
This is how it's done in the autotools build. Also avoids problems
with multiple source files having the same name (gdkeventsource.c).
Also move broadway backend code into broadway subdir.
Tim-Philipp Müller [Mon, 20 Mar 2017 00:36:38 +0000 (00:36 +0000)]
meson: gdk: wayland: move wayland bits into wayland subdir
Tim-Philipp Müller [Sun, 19 Mar 2017 20:50:58 +0000 (20:50 +0000)]
meson: gdk: wayland: use array for protocol file generation
Tim-Philipp Müller [Sun, 19 Mar 2017 19:54:29 +0000 (19:54 +0000)]
meson: gdk: move x11 bits into x11 subdirectory
Also install headers.
Tim-Philipp Müller [Sun, 19 Mar 2017 15:46:55 +0000 (15:46 +0000)]
meson: gdk: update and sync with Makefiles
Also create gdk.gresource.xml at build-time.
Tim-Philipp Müller [Sun, 19 Mar 2017 14:22:33 +0000 (14:22 +0000)]
meson: demos: disable add_install_script() calls that don't work right yet
Errors out. Might really wants a script and not a binary.
Tim-Philipp Müller [Sat, 18 Mar 2017 13:07:38 +0000 (13:07 +0000)]
meson: gsk: install public headers
Tim-Philipp Müller [Sat, 18 Mar 2017 12:54:33 +0000 (12:54 +0000)]
meson: gsk: use gnome.mkenums() to generate enum types
Tim-Philipp Müller [Sat, 18 Mar 2017 12:14:12 +0000 (12:14 +0000)]
meson: gsk: generate gsk.resources.xml
Tim-Philipp Müller [Fri, 17 Mar 2017 23:43:36 +0000 (23:43 +0000)]
meson: add vulkan bits
Tim-Philipp Müller [Sun, 12 Mar 2017 20:13:10 +0000 (20:13 +0000)]
meson: examples: update
Mostly style changes. Don't create resource source files
with spaces in them, that's tempting our luck.
Tim-Philipp Müller [Sun, 12 Mar 2017 18:36:21 +0000 (18:36 +0000)]
meson: tests: make tests find resources from the source dir
Should probably also do this in the autotools build, since
the same problem exists there as well if we use srcdir != builddir.
Tim-Philipp Müller [Sun, 12 Mar 2017 18:13:31 +0000 (18:13 +0000)]
meson: tests: update and sync with Makefiles
Tim-Philipp Müller [Sun, 12 Mar 2017 16:54:44 +0000 (16:54 +0000)]
meson: demos: update and sync up with Makefiles
Tim-Philipp Müller [Sun, 12 Mar 2017 16:28:11 +0000 (16:28 +0000)]
meson: use add_project_arguments() instead of add_global_arguments()
So Gtk+ can be used as a subproject.
Tim-Philipp Müller [Sun, 12 Mar 2017 16:27:34 +0000 (16:27 +0000)]
meson: gtk-demo: update and sync up with Makefile.am
Tim-Philipp Müller [Sat, 11 Mar 2017 22:31:31 +0000 (22:31 +0000)]
meson: update list of sources for changes in git master
Tim-Philipp Müller [Sat, 11 Mar 2017 22:30:35 +0000 (22:30 +0000)]
meson: fix checks for maths and X11 funcs that need the right deps
Tim-Philipp Müller [Sat, 11 Mar 2017 22:11:07 +0000 (22:11 +0000)]
meson: work around meson/gcc bug detecting linux/* headers
Tim-Philipp Müller [Sat, 11 Mar 2017 22:06:07 +0000 (22:06 +0000)]
meson: set _GNU_SOURCE project wide
Easier, also means we don't have to define it for
checks. that will only succeed with it defind.